#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2020/7/28 10:52
# @USER    : Shengji He
# @File    : MaximumDepthBinaryTree.py
# @Software: PyCharm
# @Version  : Python-
# @TASK:

# Definition for a binary tree node.
class TreeNode:
    def __init__(self, x):
        self.val = x
        self.left = None
        self.right = None


class Solution:
    def maxDepth(self, root: TreeNode) -> int:
        """
        Given a binary tree, find its maximum depth.

        The maximum depth is the number of nodes along the longest path from the root node down to the farthest
        leaf node.

        Note: A leaf is a node with no children.

        Example:

        Given binary tree [3,9,20,null,null,15,7],

            3
           / \
          9  20
            /  \
           15   7
        return its depth = 3.

        :param root:
        :return:
        """
        if not root:
            return 0
        else:
            return 1 + max(self.maxDepth(root.left), self.maxDepth(root.right))


if __name__ == '__main__':
    print('done')
